package com.ruoyi.system.domain;

import java.math.BigDecimal;

import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 员工服务计费项类型对象 employee_service_charge_item_type
 *
 * @author ruoyi
 * @date 2025-05-12
 */
@ApiModel("员工服务计费项类型对象")
public class EmployeeServiceChargeItemType extends AbdulBaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 类型的唯一标识符，自动递增 */
    @ApiModelProperty("主键ID")
    private Long id;

    /** 项目名称，计费项的名称 */
    @ApiModelProperty("项目名称")
    @Excel(name = "项目名称，计费项的名称")
    private String itemName;

    /** 排序，项目在列表中的显示顺序 */
    @ApiModelProperty("排序")
    @Excel(name = "排序，项目在列表中的显示顺序")
    private Long sortOrder;

    /** 计费规则，描述如何计算该项目的费用 */
    @ApiModelProperty("计费规则")
    @Excel(name = "计费规则，描述如何计算该项目的费用")
    private String billingRule;

    /** 不检查可用时段，是否忽略服务可用时段的检查 */
    @ApiModelProperty("不检查可用时段")
    @Excel(name = "不检查可用时段，是否忽略服务可用时段的检查")
    private Integer ignoreAvailability;

    /** 整单折扣，针对整个订单的折扣比例（如0.90表示9折） */
    @ApiModelProperty("整单折扣")
    @Excel(name = "整单折扣，针对整个订单的折扣比例", readConverterExp = "如=0.90表示9折")
    private BigDecimal fullOrderDiscount;

    /** 折扣方式，折扣的计算方式，百分比或固定金额 */
    @ApiModelProperty("折扣方式")
    @Excel(name = "折扣方式，折扣的计算方式，百分比或固定金额")
    private String discountMethod;

    /** 参与最低消费，该项目是否参与最低消费计算 */
    @ApiModelProperty("参与最低消费")
    @Excel(name = "参与最低消费，该项目是否参与最低消费计算")
    private Integer participateInMinimumConsumption;

    /** 参与会员积分，该项目是否参与会员积分计算 */
    @ApiModelProperty("参与会员积分")
    @Excel(name = "参与会员积分，该项目是否参与会员积分计算")
    private Integer participateInMembershipPoints;

    /** 用户小程序可选，用户是否可以在小程序中选择该项目 */
    @ApiModelProperty("用户小程序可选")
    @Excel(name = "用户小程序可选，用户是否可以在小程序中选择该项目")
    private Integer userMiniProgramSelectable;

    /** 参与手动优惠，该项目是否允许手动添加优惠 */
    @ApiModelProperty("参与手动优惠")
    @Excel(name = "参与手动优惠，该项目是否允许手动添加优惠")
    private Integer participateInManualDiscounts;

    /** 手机号 */
    @ApiModelProperty("手机号")
    @Excel(name = "手机号")
    private String phone;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setItemName(String itemName)
    {
        this.itemName = itemName;
    }

    public String getItemName()
    {
        return itemName;
    }

    public void setSortOrder(Long sortOrder)
    {
        this.sortOrder = sortOrder;
    }

    public Long getSortOrder()
    {
        return sortOrder;
    }

    public void setBillingRule(String billingRule)
    {
        this.billingRule = billingRule;
    }

    public String getBillingRule()
    {
        return billingRule;
    }

    public void setIgnoreAvailability(Integer ignoreAvailability)
    {
        this.ignoreAvailability = ignoreAvailability;
    }

    public Integer getIgnoreAvailability()
    {
        return ignoreAvailability;
    }

    public void setFullOrderDiscount(BigDecimal fullOrderDiscount)
    {
        this.fullOrderDiscount = fullOrderDiscount;
    }

    public BigDecimal getFullOrderDiscount()
    {
        return fullOrderDiscount;
    }

    public void setDiscountMethod(String discountMethod)
    {
        this.discountMethod = discountMethod;
    }

    public String getDiscountMethod()
    {
        return discountMethod;
    }

    public void setParticipateInMinimumConsumption(Integer participateInMinimumConsumption)
    {
        this.participateInMinimumConsumption = participateInMinimumConsumption;
    }

    public Integer getParticipateInMinimumConsumption()
    {
        return participateInMinimumConsumption;
    }

    public void setParticipateInMembershipPoints(Integer participateInMembershipPoints)
    {
        this.participateInMembershipPoints = participateInMembershipPoints;
    }

    public Integer getParticipateInMembershipPoints()
    {
        return participateInMembershipPoints;
    }

    public void setUserMiniProgramSelectable(Integer userMiniProgramSelectable)
    {
        this.userMiniProgramSelectable = userMiniProgramSelectable;
    }

    public Integer getUserMiniProgramSelectable()
    {
        return userMiniProgramSelectable;
    }

    public void setParticipateInManualDiscounts(Integer participateInManualDiscounts)
    {
        this.participateInManualDiscounts = participateInManualDiscounts;
    }

    public Integer getParticipateInManualDiscounts()
    {
        return participateInManualDiscounts;
    }

    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("itemName", getItemName())
                .append("sortOrder", getSortOrder())
                .append("billingRule", getBillingRule())
                .append("ignoreAvailability", getIgnoreAvailability())
                .append("fullOrderDiscount", getFullOrderDiscount())
                .append("discountMethod", getDiscountMethod())
                .append("participateInMinimumConsumption", getParticipateInMinimumConsumption())
                .append("participateInMembershipPoints", getParticipateInMembershipPoints())
                .append("userMiniProgramSelectable", getUserMiniProgramSelectable())
                .append("participateInManualDiscounts", getParticipateInManualDiscounts())
                .append("phone", getPhone())
                .toString();
    }
}
